home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #334 (1994-06)(Rhein-Sieg-Soft).adf
/
tracker.library
/
Demos
/
Libs.asm
< prev
next >
Wrap
Assembly Source File
|
1994-01-09
|
4KB
|
183 lines
;TestProgramm für "tracker.library"
; Testet TRK_OpenLibrary, TRK_OpenStdLibrary und TRK_CloseLibrary
NOLIST
INCLUDE "exec/LVO.i"
INCLUDE "dos/LVO.i"
INCLUDE "dos/dosextens.i"
INCLUDE "tracker.i"
LIST
_TrackerBase: EQUR a5
_DosBase: EQUR a4
Output: EQUR d7
; WB-Message ?
sub.l a1,a1 ;a1=0->eigener Task
CALLEXEC FindTask ;Wo darf man denn nachschauen ?
move.l d0,a0
tst.l pr_CLI(a0) ;von CLI oder WB aus gestartet ?
bne fromCLI
;von WB aus:
lea pr_MsgPort(a0),a0
move.l a0,-(sp)
CALLEXEC WaitPort ;auf Start-Message warten
move.l (sp)+,a0
CALLEXEC GetMsg ;muß nachher beantwortet werden
move.l d0,WBenchMsg
fromCLI:
; Tracker-Library öffnen
OPENLIB TrName
tst.l d0
beq ende_all
move.l d0,_TrackerBase
TRK_OPENSTDLIB DOS,36
tst.l d0
beq ende_trk
move.l d0,_DosBase
tst.l WBenchMsg
bne fromWB
;von CLI aus -> Ausgaben ins CLI-Fenster
CALLDOS Output
move.l d0,Output
bra main
;von WB aus gestartet -> eigenes Window nötig
fromWB: move.l #WdName,d1
move.l #MODE_OLDFILE,d2
CALLDOS Open
move.l d0,Output
;---------------------------------------------------------------------------
;Haupt-Testteil
OPEN: MACRO ;Name, Text, Version, sichern in
lea \2,a0
lea \1,a1
move.l #\3,d0
bsr Open
move.l d0,\4
ENDM
OPENSTD: MACRO ;Kennung ohne STDLIB_, Text, Version, sichern in
lea \2,a0
move.l #STDLIB_\1,d1
move.l #\3,d0
bsr OpenStd
move.l d0,\4
ENDM
CLOSE: MACRO ;wo gesichert
move.l \1,a1
bsr Close
ENDM
main: OPEN UtilityName,UtilityText,0,d0
OPENSTD ASL,AslText,36,d6
OPENSTD DISKFONT,DFText,34,d5
CLOSE d6
OPEN FantasyName,FantasyText,33,d0
OPENSTD DISKFONT,DFText,40,d0
CLOSE d5
;---------------------------------------------------------------------------
;ggf. Window schließen
tst.l WBenchMsg
beq ende_trk
move.l Output,d1
move.l #GoodBye,d2
move.l #GoodByeLen,d3 ;jetzt sind die Speicher-Pointer uninteressant
CALLDOS Write
move.l #150,d1
CALL Delay
move.l Output,d1
CALL Close
;Library schließen
ende_trk:
CLOSELIB _TrackerBase
ende_all:
tst.l WBenchMsg ;war da was ?
beq toCLI ;na dann halt nicht
;Message zur WB zurück
move.l WBenchMsg,a1
CALLEXEC ReplyMsg
toCLI: moveq #0,d0
rts
;---------------------------------------------------------------------------
;Unterroutine: TRK_OpenStdLibrary testen
;Parameter: d0 = gewünschte Version
; a0 = Text-Label mit dem Library-Base-Namen
; d1 = Kenn-Nummer der Library
;Ergebnis: die LibraryBase / 0 bei Fehler
OpenStd: movem.l d0/a0,-(sp)
move.l d1,-(sp)
move.l sp,d3
move.l Output,d1
move.l #OpenStdText,d2
CALLDOS VFPrintf
move.l (sp)+,d1
move.l (sp)+,d0
CALLTRK TRK_OpenStdLibrary
bra PostOpen
;---------------------------------------------------------------------------
;Unterroutine: TRK_OpenLibrary testen
;Parameter: d0 = gewünschte Version
; a0 = Text-Label mit dem Library-Base-Namen
; a1 = Name der Library
;Ergebnis: die LibraryBase / 0 bei Fehler
Open: movem.l d0/a0,-(sp)
move.l a1,-(sp)
move.l sp,d3
move.l Output,d1
move.l #OpenText,d2
CALLDOS VFPrintf
move.l (sp)+,a1
move.l (sp)+,d0
CALLTRK TRK_OpenLibrary
PostOpen:
move.l Output,d1
move.l (sp),d2
move.l d0,(sp)
move.l sp,d3
CALLDOS VFPrintf
move.l (sp)+,d0
rts
;---------------------------------------------------------------------------
;Unterroutine: TRK_CloseLibrary testen
;Parameter: a1 = LibraryBase
;Ergebnis: -
Close: move.l a1,d0
bne 1$
rts
1$: movem.l a1,-(sp) ;Register sichern
CALLTRK TRK_CloseLibrary
move.l Output,d1
move.l #CloseText,d2
move.l sp,d3
CALLDOS VFPrintf
add.w #4,sp
rts
;---------------------------------------------------------------------------
WBenchMsg: dc.l 0
TrName: TRACKERNAME
OpenStdText: dc.b "OpenStdLibrary(%ld,%ld) : ",0
OpenText: dc.b "OpenLibrary(",34,"%s",34,",%ld) : ",0
CloseText: dc.b "CloseLibrary($%06lx) done",10,0
WdName: dc.b "CON:////OpenLibrary-Test für tracker.library",0
GoodBye: dc.b 10,"Bye - closing soon !"
GoodByeLen: equ *-GoodBye
UtilityName: dc.b "utility.library",0
UtilityText: dc.b "_UtilityBase=$%06lx",10,0
AslText: dc.b "_AslBase=$%06lx",10,0
DFText: dc.b "_DiskfontBase=$%06lx",10,0
FantasyName: dc.b "fantasy.library",0
FantasyText: dc.b "_FantasyBase=$%06lx",10,0
END